import java.util.*;

/**
 * Created by L.jp
 * Description:
 * User: 86189
 * Date: 2021-10-28
 * Time: 9:09
 */
public class Test {
    public static void main(String[] args) {
/*
        Map<String,String> map=new HashMap<>();
        HashMap<String,String> map2=new HashMap<>();
        map.put("悟空","孙悟空");
        map.put("悟能","猪八戒");
        map.put("悟净","沙僧");
        map.put(null,null);
        //第一种打印map的方法
        System.out.println(map);//map实现了toString接口,往map里面存放数据时，会对key做出一系列运算才放到hashmap中，打印的并不是我们放进去的顺序
        //第二种打印map的方法
        Set<Map.Entry<String,String>> set=map.entrySet();
        for (Map.Entry<String,String> entry:set) {
            System.out.println("key:"+entry.getKey()+" "+"value:"+entry.getValue());
        }
        //get()方法
        String str=map.get("悟空");
        System.out.println(str);

        //getOrDefault方法
        String str1=map.getOrDefault("悟","sb");
        System.out.println(str1);
        //返回key值的所有不重复集合
        Set<String> str3=map.keySet();
        System.out.println(str3);
        //返回value的所有可重复集合
        Collection<String> str4=map.values();
        System.out.println(str4);
        //包含方法
        boolean flg1=map.containsKey("悟能");
        System.out.println(flg1);

        boolean flg2=map.containsValue("唐僧");
        System.out.println(flg2);
        //删除key值映射关系方法
        map.remove("悟空");
        map.remove("悟能");
        System.out.println(map);
*/
        Set<Integer> set2=new HashSet<>();
        HashSet<String> set3=new HashSet<>();
        set2.add(1);
        set2.add(2);
        set2.add(3);
        set2.add(4);
        set2.add(null);
        System.out.println(set2);

        set3.add("hello");
        set3.add("hello1");
        set3.add("hello2");
        set3.add("hello3");
        System.out.println(set3);//set中存放元素是无序的

        //第二种打印
        //迭代器,没有实现tostring方法，是向下打印的，迭代器不能遍历map
        Iterator<String> it=set3.iterator();
        while(it.hasNext()){
            System.out.println(it.next());//不仅会向下，而且还会打印
        }
        System.out.println("=========");
        //将set中的元素转换为数组返回
        Object[] arr1=set3.toArray();
        for (Object str:arr1) {
            System.out.println(str);
        }

        //删除元素
        System.out.println("========");
        set2.remove(2);
        System.out.println(set2);
        set3.remove("hello1");
        System.out.println(set3);

        //判断空
        boolean fag=set3.isEmpty();
        System.out.println(fag);

        //计算大小
        int num=set2.size();
        System.out.println(num);
    }
}
